/--separator--/ {
	if (currentNodeName != nodeName) {
		lastRelativeTime = 0;
	}

	nodeNumber = substr(nodeName, 4, 2);
	relativeTime = (createtime/1000) - startTime;
	intervall = relativeTime - lastRelativeTime;

	if (type == "i") {
		#print "#", nodeName, attributes;
	} else {
		print sprintf("%2f",intervall), nodeName, attributes;
		lastRelativeTime = relativeTime;
		currentNodeName = nodeName;
	}

	attributes = "";

	num = split($0, aToken, /--separator--/);
	nodeName = aToken[1];
	createtime = aToken[2];
	type = "d";
}

/Attr/ {
	name  = "";
	value = "";
	weight = 1;
	
	posWeight = match($0, /weight=".*"/) + 8;
	lenWeight = RLENGTH;
	if (lenWeight > 0) weight = substr($0, posWeight, lenWeight-9);

	posName = match($0, /name=".*"/) + 6;
	lenName = RLENGTH - lenWeight;
	if (lenName > 0) name = substr($0, posName, lenName-8);

	posValue = match($0, />.*</) + 1;
	lenValue = RLENGTH - 2;
	if (lenValue > 0) value = substr($0, posValue, lenValue);

	if (name == "NodeDescription") {
		type = "i";
	} else {
		if (posName > 0) {
			attributes = sprintf("%s %s=%s:%s", attributes, name, value, weight);
		}	
	}
}